package projet.sax;

import java.util.ArrayList;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import projet.objetsmetier.DemandeCheques;

/**
 * Cette classe permet la lecture d'un enregistrement client au format XML.
 * 
 * @author Maxime GOUFFE, Olivia GUIDEZ
 * 
 */
public class EnregistrementSAX extends DefaultHandler {
	private String texte;
	private DemandeCheques demandeCheques;
	private String idGestionnaire, idClient, idEnregistrement, type;
	private Double montantCompte;
	private ArrayList<DemandeCheques> lDemandeCheques;

	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
		texte = new String(arg0, arg1, arg2);
	}

	public void endElement(String arg0, String arg1, String arg2)
			throws SAXException {
		if ("demandeCheques".equals(arg2)) {
			lDemandeCheques.add(demandeCheques);
		} else if ("idGestionnaire".equals(arg2)) {
			idGestionnaire = texte;
		} else if ("idClient".equals(arg2)) {
			idClient = texte;
		} else if ("montantCompte".equals(arg2)) {
			montantCompte = Double.parseDouble(texte);
		} else if ("devise".equals(arg2)) {
			demandeCheques.setDevise(texte);
		} else if ("nombreCheques".equals(arg2)) {
			demandeCheques.setNombre(Integer.parseInt(texte));
		}
	}

	public void startElement(String arg0, String arg1, String arg2,
			Attributes arg3) throws SAXException {
		if (arg2.equals("enregistrement")) {
			lDemandeCheques = new ArrayList<DemandeCheques>();
			idEnregistrement = arg3.getValue("idEnregistrement");
			type = arg3.getValue("type");
		} else if (arg2.equals("demandeCheques")) {
			demandeCheques = new DemandeCheques();
		}

	}

	public String getIdEnregistrement() {
		return idEnregistrement;
	}

	public void setIdEnregistrement(String idEnregistrement) {
		this.idEnregistrement = idEnregistrement;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getTexte() {
		return texte;
	}

	public void setTexte(String texte) {
		this.texte = texte;
	}

	public DemandeCheques getDemandeCheques() {
		return demandeCheques;
	}

	public void setDemandeCheques(DemandeCheques demandeCheques) {
		this.demandeCheques = demandeCheques;
	}

	public String getIdGestionnaire() {
		return idGestionnaire;
	}

	public void setIdGestionnaire(String idGestionnaire) {
		this.idGestionnaire = idGestionnaire;
	}

	public String getIdClient() {
		return idClient;
	}

	public void setIdClient(String idClient) {
		this.idClient = idClient;
	}

	public Double getMontantCompte() {
		return montantCompte;
	}

	public void setMontantCompte(Double montantCompte) {
		this.montantCompte = montantCompte;
	}

	public ArrayList<DemandeCheques> getlDemandeCheques() {
		return lDemandeCheques;
	}

	public void setlDemandeCheques(ArrayList<DemandeCheques> lDemandeCheques) {
		this.lDemandeCheques = lDemandeCheques;
	}

}